全渠道运营探秘|支撑月活6亿用户量级的易观数科SDK团队
阅读 499 · 发布日期 2020-12-15 · admin
在今天,易观数科SDK团队支撑着月活6亿的用户量级,辉煌成绩的背后离不开技术支撑,为此,我们特地采访了SDK成员,为我们揭开SDK开发和团队背后的那层神秘面纱,以下为采访摘要~
小易:SDK作为数据采集工具而言,在易观数科整个产品中担任的职责是什么?
猪皮肚:作为易观数科方舟产品的底层技术小组,SDK承担的职责十分明确:保证SDK的稳定性、数据采集的准确性以及安全可靠性。另外,团队在大方向上与公司保持一致,都是要帮助客户更好的成长,通过易观数科提供的产品和解决方案解决客户存在的问题,从而达到共赢目的。
乐天:我认为基本的职责是持续迭代优化各端SDK产品(如:iOS-SDK、JS-SDK 等),保证产品的稳定性、易用性;最终的职责或者说最终的目标是做到行业领先SDK产品,最好能营造出一种生态,让我们SDK能服务于各行各业。如果把易观数科生态营造起来,拥有更多开源的伙伴,对公司产品(不光SDK)有很大的提升和帮助。
小易:确实,作为易观数科整个产品线最底层的工具,SDK承担着非比寻常的责任,但也会面临很多问题,现阶段SDK团队遇到的困难或挑战是什么?
猪皮肚:SDK组与其他小组有很大区别,由于SDK端包含语言较多,比如:iOS、Android、JS、Java、C++、小程序、Ruby、Python等众多语言,所以在开发时往往一人承担多种语言SDK的开发,这对个人来讲还是很有挑战的。
小陈:我觉得有三点:一是SDK种类繁多,组内人员有限,所会开发语言类型有限,导致开发成本高,维护成本高;二是SDK作为数据采集程序,任何平台,任何设备都可能会使用到,兼容性方面面临挑战;最后易观作为一家to B的公司,面临的每家用户都不一样,在支持用户的过程中需要花费很多精力。
繁华似锦:我认为也是三点,首先是兼容性,需要保证系统、app、网页、SDK的新老版本相适配;其次是稳定性,因为SDK是嵌入到客户项目中的工具,稳定性是重中之重;最后是准确性,需保证在正常及异常环境中准确及稳定的统计数据。
小易:三位刚刚提到的都是SDK最直接的痛点问题,那针对这些问题是否有很好的解决措施,可以跟我们具体谈谈吗?
猪皮肚:问题具有挑战性,但同时也为我们提供了一个了解、学习其他开发语言特性、思想及思维方式的机会。我们小组内部采用自愿机制,即谁对某个语言感兴趣,那么就可以申请做相应语言版本的SDK,这样既解决了多语言开发的问题,同时也提升了个人的开发能力。
小陈:首先绝大部分都是内部消化,组内人员不断学习新的东西,解决SDK所需的不断增加种类;其次增加测试手段,不断购买新的测试设备,搭建自动化测试平台,解决兼容性问题;最后也是最重要的一点,以用户为主,用户问题优先解决,其他的工作任务在时间不够时通过加班解决。
小易:我看各位刚刚都有提到团队内部组织学习,对于一个团队来讲,肯定是要互相学习、不断成长,这就离不开团队建设,跟否我们简单分享下关于团队建设方面的经验?
Yscotte:SDK团队内部氛围比较轻松,有严格的代码维护体系、SDK提测流程、SDK发版流程,而且目前我们在实行一种制度:每周都会选举一个人作为”老板“,督促大家平时的工作、日报、周报等工作内容,协调各种问题的处理流程,这样能使每个人都比较全面的了解整个组的进展,而不是只关注个人端的事情。
猪皮肚:我们组内会将需求、开发、运维及各种文档一一梳理到confluence上,方便大家查找及查看,并且流程化。经过一段时间的适应,通过confluence和jira的结合使用,使开发提测更加效率且流程化。工具流程化极大提升了工作效率,好记性的确不如烂笔头。
小易:刚才我们谈到SDK团队面临的困难和相应的解决措施,以及展开的一些团队建设,那在接受这些经验也好、积累也好后,近段时间内SDK团队是否取得了一些令人兴奋的成绩?
萨飞:我们的热图从开发到上线只用了一个月时间,可视化的第一个版本也同样在一个月内完成。现阶段可视化埋点功能是全球范围内对外公开提供服务的、功能最强大的便捷操作的埋点方式,拥有技术前瞻性很有必要,当然成绩的取得离不开团队所有成员的用心努力和快速迭代的产品学习能力。
小易:团队的进步的确离不开成员间的彼此协作与互相配合,那在这个合作过程中我想不免也会发生一些意见分歧或摩擦,SDK是否也会遇到类似情况,一般是怎样解决的?
乐天:我们做可视化时就遇到过这个问题,分歧、误解确实很多,一般这个时候我们会先将每个人的想法以文字的形式写出来,然后对比其他队员的思路观点,冷静思考,商量时间去探讨、磨合,最终统一得出一个方案,以产品可用的形态呈现出来。如果大家统一完成的方案不通过或者没有得到客户认可,那我们会将之前写的资料再调出来,重新思考、整理。无论经历多少次修改,我们始终站在客户这条线上不断完善,甚至推到重新做都是有必要的。
猪皮肚:对于开发来讲最常见莫过于对需求理解的分歧,同样的需求不同开发者理解不同,由于语言不一样实现方式也会不一样,这就导致不同端开发完成后,业务逻辑可能有不同表现。 针对这一问题,我们通常接到需求后会按照这个顺序处理:各端先梳理 -> 开会同步 -> 开发完成 -> 统一case验证。
小易:现在很多公司都开始强调工程师文化,易观数科亦是如此,可以谈一谈SDK团队的工作风格或者说团队文化是怎样的吗?
萨飞:我觉得是学习,或者叫进化。因为SDK自身的调性需要我们不断研发迭代新的功能需求,进行自我更新,所以团队内会经常组织大家学习各种新技术,一起探讨学习。
青山:用两方面来概括,对内做到产品稳定,丰富迭代;对外保持快速响应,贴身研发。因为SDK组是最深入到客户群体中的,客户产品的运行设备、开发语言、产品风格多种多样,保证SDK的稳定性,数据采集可靠性和安全性是我们的目标。当客户提出某种问题或需求时,SDK会第一时间提出方案解决并根据客户需求实行贴身研发,最大程度满足客户需要。
小陈:我想用三个关键词来描述下,第一点是认真负责,第二是自我驱动力强,最后也是最重要的一点是以用户需求为主,始终为用户服务。
工作中,团队给予我们的力量是无穷的。正如叔本华所言,单个的人是软弱无力的,就像漂流的鲁滨逊一样,只有同别人在一起,他才能完成许多事业。
因此一个人是谁并不重要,重要的是他站在那里的时候,在他身后站着的是一群什么样的人。
成长路上,需要与优秀的人为伍
如果你也在寻找
欢迎加入我们“易”起前行
欢迎投递简历到hr@analysys.com.cn邮箱